package estadao;

import com.sun.rave.web.ui.appbase.AbstractFragmentBean;
import com.sun.webui.jsf.component.TreeNode;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

/**
 * <p>Fragment bean that corresponds to a similarly named JSP page
 * fragment.  This class contains component definitions (and initialization
 * code) for all components that you have defined on this fragment, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 *
 * @version menu.java
 * @version Created on 09/07/2012, 11:27:05
 * @author Gláucio
 */
public class menu extends AbstractFragmentBean {
  // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">

  /**
   * <p>Automatically managed component initialization. <strong>WARNING:</strong>
   * This method is automatically generated, so any user-specified code inserted
   * here is subject to being replaced.</p>
   */
  private void _init() throws Exception {
  }
  private TreeNode treeClasses = new TreeNode();

  public TreeNode getTreeClasses() {
    return treeClasses;
  }

  public void setTreeClasses(TreeNode tn) {
    this.treeClasses = tn;
  }
  // </editor-fold>

  public menu() {
  }

  /**
   * <p>Callback method that is called whenever a page containing
   * this page fragment is navigated to, either directly via a URL,
   * or indirectly via page navigation.  Override this method to acquire
   * resources that will be needed for event handlers and lifecycle methods.</p>
   *
   * <p>The default implementation does nothing.</p>
   */
  @Override
  public void init() {
    // Perform initializations inherited from our superclass
    super.init();
    // Perform application initialization that must complete
    // *before* managed components are initialized
    // <editor-fold defaultstate="collapsed" desc="Visual-Web-managed Component Initialization">
    // Initialize automatically managed components
    // *Note* - this logic should NOT be modified
    try {
      _init();
    } catch (Exception e) {
      log("Page1 Initialization Failure", e);
      throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
    }

    // </editor-fold>
    // Perform application initialization that must complete
    // *after* managed components are initialized
    atualizarMenu();
  }

  /**
   * <p>Callback method that is called after rendering is completed for
   * this request, if <code>init()</code> was called.  Override this
   * method to release resources acquired in the <code>init()</code>
   * resources that will be needed for event handlers and lifecycle methods.</p>
   *
   * <p>The default implementation does nothing.</p>
   */
  @Override
  public void destroy() {
  }

  /**
   * <p>Return a reference to the scoped data bean.</p>
   *
   * @return reference to the scoped data bean
   */
  protected RequestBean1 getRequestBean1() {
    return (RequestBean1) getBean("RequestBean1");
  }

  /**
   * <p>Return a reference to the scoped data bean.</p>
   *
   * @return reference to the scoped data bean
   */
  protected ApplicationBean1 getApplicationBean1() {
    return (ApplicationBean1) getBean("ApplicationBean1");
  }

  /**
   * <p>Return a reference to the scoped data bean.</p>
   *
   * @return reference to the scoped data bean
   */
  protected SessionBean1 getSessionBean1() {
    return (SessionBean1) getBean("SessionBean1");
  }

  private void atualizarMenu() {
    treeClasses.setVisible(false);

    FacesContext fc = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);

    if (session == null) {
      return;
    }

    String administrador = (String) session.getAttribute("administrador");

    if (administrador == null) {
      return;
    }
    treeClasses.setVisible(administrador.equals("2012"));
  }
}
